/**
 * 该模块是业务路由器, 目前管理的业务有: 登录, 注册
 */

let {Router} = require("express")
let router = new Router()
let userModel = require("../model/userModel")

router.post("/login", async(req, resp) => {
    console.log(req.body)
    // 1. 获取用户的输入
    const {email, password} = req.body
    // 2. 校验数据的合法性
    const emailReg = /^[a-zA-Z0-9_]{2,16}@[a-zA-Z0-9]{2,16}\.com$/
    const passwordReg = /^[a-zA-Z0-9_#]{6,16}$/
    if(!emailReg.test(email)){
        resp.send("邮箱输入不合法! 要求邮箱用户名2-16位, 不包含特殊字符")
        return
    }else if(!passwordReg.test(password)){
        resp.send("密码输入不合法, 密码应为6-16位字符, 不包含特殊字符")
        return
    }
    // 3. 检查该邮箱是否注册过
    try{
        let findResult = await userModel.findOne({email, password})
        if(findResult){
            console.log(`邮箱为: ${email}的用户登录成功`)
            // 客户端跳转, 重定向
            resp.redirect("https://www.baidu.com/")
        }else{
            resp.send("用户名或密码输入错误")
        }
    }catch(err){
        console.log(err)
        resp.send("阿偶, 网络不稳定, 请稍后重试")
    }
})

router.post("/register", async (req, resp) => {
    console.log(req.body)
    // 1. 获取用户的输入
    const {email, nick_name, password, re_password} = req.body
    // 2. 校验数据的合法性
    const emailReg = /^[a-zA-Z0-9_]{2,16}@[a-zA-Z0-9]{2,16}\.com$/
    const nickNameReg = /^[\u4e00-\u9fa5]{2,6}$/gm
    const passwordReg = /^[a-zA-Z0-9_#]{6,16}$/
    if(!emailReg.test(email)){
        resp.send("邮箱输入不合法! 要求邮箱用户名2-16位, 不包含特殊字符")
        return
    }else if(!nickNameReg.test(nick_name)){
        resp.send("昵称输入不合法, 昵称应为中文")
        return
    }else if(!passwordReg.test(password)){
        resp.send("密码输入不合法, 密码应为6-16位字符, 不包含特殊字符")
        return
    }else if(password !== re_password){
        resp.send("两次输入密码不一致")
        return
    }
    // 3. 检查该邮箱是否注册过
    try{
        let findResult = await userModel.findOne({email})
        if(findResult){
            resp.send(`注册失败, ${email}邮箱已经被注册了`)
        }else{
            await userModel.create({email, nick_name, password})
            console.log("邮箱为: ${email}, 昵称为: ${nick_name}的用户注册成功了")
            resp.send("注册成功了")
        }
    }catch(err){
        console.log(err)
        resp.send("阿偶, 网络不稳定, 请稍后重试")
    }
})

module.exports = router